home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / djgpp / samples / dpmi / timer.c < prev   
C/C++ Source or Header  |  1993-09-26  |  880b  |  42 lines

  1. #include <stdio.h>
  2. #include <pc.h>
  3. #include <sys/types.h>
  4. #include <dpmi.h>
  5.  
  6. volatile int new_tc;
  7.  
  8. void tic_handler()
  9. {
  10.   new_tc ++;
  11. }
  12.  
  13. int main()
  14. {
  15.   int old_tc = 0, iter=0;
  16.   _go32_dpmi_seginfo old_handler, new_handler;
  17.  
  18.   printf("grabbing timer interrupt\n");
  19.   _go32_dpmi_get_protected_mode_interrupt_vector(8, &old_handler);
  20.   
  21.   new_handler.pm_offset = (int)tic_handler;
  22.   new_handler.pm_selector = _go32_my_cs();
  23.   _go32_dpmi_chain_protected_mode_interrupt_vector(8, &new_handler);
  24.  
  25.   printf("Trapping timer tics, press any key to stop\n");
  26.   while (!kbhit())
  27.   {
  28.     if (old_tc != new_tc)
  29.     {
  30.       printf("iter = %d,  tics = %d\n", iter, new_tc);
  31.       old_tc = new_tc;
  32.     }
  33.     iter++;
  34.   }
  35.   getkey();
  36.  
  37.   printf("releasing timer interrupt\n");
  38.   _go32_dpmi_set_protected_mode_interrupt_vector(8, &old_handler);
  39.  
  40.   return 0;
  41. }
  42.